﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Cotizav.LogicaNegocio
{
    public class FiltroBusquedaBLL
    {
        public string GenerarCondicion(List<Entidades.FiltroBusqueda> lista)
        {
            string resultado = string.Empty;

            foreach (Entidades.FiltroBusqueda l in lista)
            {
                if (l.Valor1 != null)
                {
                    if (l.Valor1.GetType() == typeof(int))
                        resultado += string.Format("({0} = {1}) AND ", l.Atributo, int.Parse(l.Valor1.ToString()));

                    if (l.Valor1.GetType() == typeof(string))
                        resultado += string.Format("({0} = '{1}') AND ", l.Atributo, l.Valor1.ToString());

                    if (l.Valor1.GetType() == typeof(DateTime) && l.Valor2.GetType() == typeof(DateTime))
                        resultado += string.Format("({0} BETWEEN '{1}' AND '{2}') AND ", l.Atributo, Convert.ToDateTime(l.Valor1).ToString("yyyy/MM/dd"), Convert.ToDateTime(l.Valor2).ToString("yyyy/MM/dd"));                    
                }
            }

            if (!string.IsNullOrWhiteSpace(resultado))
            {
                resultado = resultado.Insert(0, "WHERE ");
                resultado = resultado.Remove(resultado.LastIndexOf("AND"), 3); 
            }

            return resultado.Trim();
        }
    }
}
